There are three itimers (see Table 3-2), only one of which is of interest to a real-time programmer.
The ITIMER_VIRTUAL and ITIMER_PROF timers are not useful to a real-time program because of their coarse precision and because their intervals vary depending on when and how often the process is dispatched. The ITIMER_REAL type measures absolute time, and on the Challenge/Onyx, its resolution can be 500 microseconds or less.
Timers and the resolution of the real-time timer are discussed further in Chapter 5, "Managing Time and Time Intervals." Sample code that sets up an itimer can be found under "Interprocess Communication" in Appendix A.
Note: Interval timers are usually not necessary, and should not be used, under the Frame Scheduler. See "Using Timers with the Frame Scheduler".
IRIX also supports the POSIX-defined functions alarm() and sleep(). However, since these functions deal with intervals of seconds, they are of less interest to real-time programmers (see alarm(2) and sleep(2) reference pages).
The POSIX functions comparable to setitimer(), such as timer_settime(), will be implemented in a future release.